package model;

import java.io.Serializable;

import java.math.BigDecimal;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;

@Entity
@NamedQueries( { @NamedQuery(name = "Modelo.findAll", query = "select o from Modelo o") })
public class Modelo implements Serializable {
    private BigDecimal capacidad;
    @Id
    @Column(name = "ID_MODELO", nullable = false, length = 20)
    private String idModelo;
    @Column(length = 20)
    private String marca;
    @Column(nullable = false, length = 50)
    private String nombre;
    @OneToMany(mappedBy = "modelo")
    private List<InformacionKm> informacionKmList;
    @OneToMany(mappedBy = "modelo1")
    private List<Vehiculo> vehiculoList;

    public Modelo() {
    }

    public Modelo(BigDecimal capacidad, String idModelo, String marca, String nombre) {
        this.capacidad = capacidad;
        this.idModelo = idModelo;
        this.marca = marca;
        this.nombre = nombre;
    }

    public BigDecimal getCapacidad() {
        return capacidad;
    }

    public void setCapacidad(BigDecimal capacidad) {
        this.capacidad = capacidad;
    }

    public String getIdModelo() {
        return idModelo;
    }

    public void setIdModelo(String idModelo) {
        this.idModelo = idModelo;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public List<InformacionKm> getInformacionKmList() {
        return informacionKmList;
    }

    public void setInformacionKmList(List<InformacionKm> informacionKmList) {
        this.informacionKmList = informacionKmList;
    }

    public InformacionKm addInformacionKm(InformacionKm informacionKm) {
        getInformacionKmList().add(informacionKm);
        informacionKm.setModelo(this);
        return informacionKm;
    }

    public InformacionKm removeInformacionKm(InformacionKm informacionKm) {
        getInformacionKmList().remove(informacionKm);
        informacionKm.setModelo(null);
        return informacionKm;
    }

    public List<Vehiculo> getVehiculoList() {
        return vehiculoList;
    }

    public void setVehiculoList(List<Vehiculo> vehiculoList) {
        this.vehiculoList = vehiculoList;
    }

    public Vehiculo addVehiculo(Vehiculo vehiculo) {
        getVehiculoList().add(vehiculo);
        vehiculo.setModelo1(this);
        return vehiculo;
    }

    public Vehiculo removeVehiculo(Vehiculo vehiculo) {
        getVehiculoList().remove(vehiculo);
        vehiculo.setModelo1(null);
        return vehiculo;
    }
}
